
package ejemplojdbc1;

import java.sql.*;
import java.util.*;

/**
 *
 * @author jms
 */
public class EjemploJdbc1 {

    /**
     * @param args
     */
    
    static Scanner sc=new Scanner(System.in);
    public static void main(String[] args) throws ClassNotFoundException {
        conexionMySQL();
    }
    
    public static void conexionMySQL() throws ClassNotFoundException{
        Connection con=null;
        
        try {
            //La línea de abajo haría falta si no se hubiese cargado previamente  
            //  el driver de jdbc
            
            //Class.forName("com.mysql.jdbc.driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost/liga","root","");
            System.out.println("Conexión correcta.");
            
            //llamamos a los métodos
            borrarJugador(con);
            //actualizarJugador(con);
            //insertarJugador(con);
            verJugadores(con);
            
            //cerramos la conexión
            con.close();
            
            } catch (SQLException ex) {
                System.out.println("Error en la conexión. " + ex.getMessage());
                }
    }
    
    //método para ver los jugadores
    public static void verJugadores(Connection con){
        Statement stmt=null;
        
        String query="select * from jugador;";
        
        try {
            stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery(query);
            
            while (rs.next()) {
                
                //Creamos las variables necesarias para recuperar los
                //  valores que necesitamos de la BD
                //Entre paréntesis el nombre exacto del campo que queremos 
                //  recuperar de la BD
                int idJugador=rs.getInt("id_jugador");
                String nombre=rs.getString("nombre");
                String apellido=rs.getString("apellido");
                String posicion=rs.getString("posicion");
                double salario=rs.getDouble("salario");
                
                //mostramos los datos por pantalla
                System.out.println("*****************************************");
                System.out.println("El id es: " + idJugador);
                System.out.println("El nombre es: " + nombre);
                System.out.println("El apellido es: " + apellido);
                System.out.println("La posición del jugador es: " + posicion);
                System.out.println("El salario es: " + salario);
                System.out.println("*****************************************");
            }
            //cerramos el statement
            stmt.close();
            
        } catch (SQLException ex) {
            System.out.println("Error SQL: " + ex.getMessage());;
        }
    }
    
    //método para insertar un jugador
    public static void insertarJugador(Connection con) throws SQLException{
        Statement stmt=null;
        
        //pedimos los datos
        System.out.println("*********************************");
        System.out.println("Introduce el ID del jugador");
        int id=sc.nextInt();
        sc.nextLine();
        System.out.println("Introduce el nombre del jugador");
        String nom=sc.nextLine();
        System.out.println("Introduce el apellido del jugador");
        String ape=sc.nextLine();
        System.out.println("Introduce el posicion del jugador");
        String pos=sc.nextLine();
        System.out.println("Introduce el salario del jugador");
        int sal=sc.nextInt();
        System.out.println("*********************************");
        
        try {
            stmt=con.createStatement();
            String query="insert into jugador(id_jugador,nombre,apellido,"
                    + "posicion,salario) values("+id+",'"+nom+"','"+ape+"','"+pos+"',"
                    + ""+sal+");";
            stmt.executeUpdate(query);
            
        } catch (SQLException ex) {
            System.out.println("Error SQL: " + ex.getMessage());
        }finally{
            stmt.close();
        }
    }
    
    //método para actualizar jugador
    public static void actualizarJugador(Connection con) throws SQLException{
        Statement stmt=null;
        
        //pedimos los datos a actualizar
        System.out.println("Introduce el ID del jugador a actualizar");
        int id=sc.nextInt();
        sc.nextLine();
        System.out.println("Introduce el nombre del jugador");
        String nom=sc.nextLine();
        System.out.println("Introduce el apellido del jugador");
        String ape=sc.nextLine();
        System.out.println("Introduce el posicion del jugador");
        String pos=sc.nextLine();
        System.out.println("Introduce el salario del jugador");
        int sal=sc.nextInt();
        
        try {
            stmt=con.createStatement();
            String query="update jugador set nombre='"+nom+"',"
                    + "apellido='"+ape+"',posicion='"+pos+"',"
                    + "salario="+sal+" where id_jugador="+id+";";
            stmt.executeUpdate(query);
            
        } catch (SQLException ex) {
            System.out.println("Error SQL: " + ex.getMessage());
        }finally{
            stmt.close();
        }
    }
    
    //método para borrar jugador
    public static void borrarJugador(Connection con) throws SQLException{
        Statement stmt=null;
        
        //pedimos el id del jugador a borrar
        System.out.println("Introduce el ID del jugador a borrar");
        int id=sc.nextInt();
        
        try {
            stmt=con.createStatement();
            String query="delete from jugador where id_jugador = "+id+";";
            stmt.executeUpdate(query);
            
        } catch (SQLException ex) {
            System.out.println("Error SQL: " + ex.getMessage());
        }finally{
            stmt.close();
        }
    }
    
}
